package Test.trycatch;


/**
 * @Author: guozhenran
 * @Date: 2023/4/25 10:28
 * @Description: 如果finally块没有return语句，那么原来的返回值因为finally里的修改可能改变也有可能不变
 *      对于基本数据类型来说，finally中对返回值的修改不会影响try中return返回变量的值
 *      （解释：try或catch中的return要返回的值在finally执行之前会拷贝一份）
 */
public class Demo04_1 {
    public static void main(String[] args) {
        System.out.println(func());
    }

    public static int func(){
        int a = 10;
        try{
            System.out.println("try中的代码块");
            a += 10;
            return a;
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("catch中的代码块");
        }finally {
            System.out.println("finally中的代码块");
            a += 10;
            if(a > 10){
                System.out.println("a > 10,a="+a);
            }
            a += 10;
        }
        return a;
    }
}